<?php
if (!defined('URL')) include('../includes/definer.php');
if (!defined('BOOTSTRAP')) include(INC.'admin/php/bootstrap.php');
include(INC.'admin/php/clases/Paginador.php');
if (!class_exists('Texto')) include(INC.'admin/php/clases/Texto.php');
$pagina = (isset($_GET['pagina']))?$_GET['pagina']:1;
$desde = ($pagina - 1) * $cuantos;
$conn->exec("SET lc_time_names = 'es_ES'");
$q = Doctrine_Query::create()
        ->select('
            p.id,
            p.titulo, 
            p.publicado as timeago, 
            DATE_FORMAT(p.publicado, "%d-%m-%Y") as fecha, 
            p.contenido as bajada, 
            p.slug as slug, 
            c.slug as categoriaSlug, 
            c.value as categoriaValue, 
            i.src as portada,
            DATE_FORMAT(p.publicado, "%M %Y") as mes
        ')
        ->from('Publicacion p')
        ->innerJoin('p.categoria c')
        ->leftJoin('p.imagenes i')
        ->where('p.id_estado = ?', Estado::VISIBLE)
        ->andWhereNotIn('c.slug', array('about-me', 'home'))
        ->limit($cuantos)
        ->offset($desde)
        ->orderBy('p.publicado desc, i.orden')
;

if (isset($_GET['categoria'])) {
    $q->andWhere('c.slug = ?', $_GET['categoria']);
}

$jsPost = 'false';
$jsCategoria = 'false';

if (isset($POST)) {
    $q->addWhere ('p.id <> '.$POST->id);
    $visita = new Visita();
    $visita->publicacion = $POST;
    $visita->fecha = date('Y-m-d H:m:i');
    $visita->save();
    $jsPost = '"'.$POST->id.'"';
    $jsCategoria = '"'.$POST->categoria->slug.'"';
} elseif (isset($_GET['prensa'])) {
    $visita = new Visita();
    $visita->categoria = Doctrine::getTable('categoria')->findOneBySlug($_GET['prensa']);
    $visita->fecha = date('Y-m-d H:m:i');
    $visita->save();
    $jsCategoria = '"prensa"';
} elseif (isset($_GET['tag'])) {
    $q->innerJoin('p.tags as t WITH t.slug = ?', $_GET['tag']);
    $visita = new Visita();
    $visita->tag = Doctrine::getTable('tag')->findOneBySlug($_GET['tag']);
    $visita->fecha = date('Y-m-d H:m:i');
    $visita->save();
} elseif (isset($_GET['busqueda'])) {
    $ids = Publicacion::search ($_GET['busqueda']);
    $q->andWhereIn ('p.id', $ids)->orderBy('FIND_IN_SET(id, "'.  implode(',', $ids).'")');
} elseif (isset($_GET['year'])) {
    $q->having('mes = ? ', $_GET['mes'].' '.$_GET['year']);
} else {
    if (isset($_GET['categoria'])) {
        $visita = new Visita();
        $visita->categoria = Doctrine::getTable('categoria')->findOneBySlug($_GET['categoria']);
        $visita->fecha = date('Y-m-d H:m:i');
        $visita->save();
        $jsCategoria = '"'.$_GET['categoria'].'"';
    } else {
        $visita = new Visita();
        $visita->categoria = Doctrine::getTable('categoria')->findOneBySlug('home');
        $visita->fecha = date('Y-m-d H:m:i');
        $visita->save();
        $q->andWhere('c.slug <> ?', 'prensa');
    }
}


$q2 = $q->copy();
$q2->removeDqlQueryPart('limit');
$q2->removeDqlQueryPart('offset');
$q2->removeDqlQueryPart('select');
$q2->addSelect('p.id, DATE_FORMAT(p.created_at, "%M %Y") as mes, i.id');

$total = count($q2->execute(array(), Doctrine::HYDRATE_ARRAY));
$publicaciones = $q->execute(array(), Doctrine::HYDRATE_ARRAY);

$html = '';
if (count($publicaciones)) {
    $masonryHtml = file_get_contents(INC.'tpl/post-list-item.tpl');
    include(INC.'php/replacers/postList.replacer.php');
} else {
    if (isset($_GET['categoria'])) $html = '<h2 class="empty-search">No hay publicaciones pertenecientes a esta categoría</h2>';
    if (isset($_GET['busqueda'])) $html = '<h2 class="empty-search">No hay resultados para <span class="search-term">"'.$_GET['busqueda'].'"</span></h2>';
    if (isset($_GET['year'])) $html = '<h2 class="empty-search">No hay publicaciones pertenecientes a este período</h2>';
}
echo($html);
?>